package editorsvg.editor.comandos;

import editorsvg.editor.documento.ConjuntoElementos;
import editorsvg.editor.documento.ElementoEditable;
import editorsvg.editor.documento.RestauradorPosicionElementos;

/**
 *
 * @author Jorge Berjano
 */
public class ComandoDesagrupar implements Comando {
    private ElementoEditable documento;
    private ConjuntoElementos elementos;
    private RestauradorPosicionElementos restaurador;
    private ConjuntoElementos elementosDesagrupados;

    public ComandoDesagrupar(ElementoEditable documento, ConjuntoElementos elementos) {

            this.documento = documento;
            this.elementos = elementos;
            restaurador = new RestauradorPosicionElementos(this.documento, this.elementos);
    }
    
    @Override
    public void hacer() {
        elementosDesagrupados = documento.desagruparElementos(elementos);
    }

    @Override
    public void deshacer() {
        documento.borrarElementos(elementosDesagrupados);
        restaurador.restaurar();
    }
}
